#define  _CRT_SECURE_NO_WARNINGS
//#include <iostream>
//#include<vector>
//using namespace std;
//
//int n;
//
//int main()
//{
//    cin >> n;
//    vector<vector<int>> vv(n);
//    for (int i = 0; i < n; i++)
//    {
//        vv[i].resize(i + 1);
//    }
//
//    for (int i = 0; i < n; i++)
//    {
//        for (int j = 0; j <= i; j++)
//        {
//            if (i == j || j == 0)
//            {
//                vv[i][j] = 1;
//            }
//            else
//            {
//                vv[i][j] = vv[i - 1][j - 1] + vv[i - 1][j];
//            }
//        }
//    }
//
//    for (int i = 0; i < n; i++)
//    {
//        for (int j = 0; j <= i; j++)
//        {
//            printf("%5d", vv[i][j]);
//        }
//        cout << endl;
//    }
//
//    return 0;
//}

#include <iostream>
using namespace std;

int n;

int main() {
    cin >> n;
    int a = 0, b = 1, c = 1;
    while (n > c)
    {
        a = b;
        b = c;
        c = a + b;
    }

    cout << min(n - b, c - n) << endl;

    return 0;
}